package com.mask.boot.util;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * 统一json返回类
 * chain的中文含义是链式的，设置为true，则setter方法返回当前对象
 * @author hx
 * @date 2021-09-06 18:17
 */
@Data
@Accessors(chain = true)
public class R<T> implements Serializable {

    private static final long serialVersionUID = -4496007777208425865L;


    @ApiModelProperty("响应码")
    private String code;
    @ApiModelProperty("消息级别")
    private String level;
    @ApiModelProperty("响应消息")
    private String message;
    @ApiModelProperty("响应数据")
    private T data;

    public R(){

    }
    /**
     * 响应结果
     * @param code 成功指令
     * @param message  成功消息
     * @return  RollResponse实例
     */
    public static R result(String code, String level, String message){
        return new R<>().setCode(code).setLevel(level).setMessage(message);
    }

    /**
     * 响应结果
     * @param code 成功指令
     * @param message 成功消息
     * @param data  成功数据
     * @param <T>   泛型数据
     * @return  RollResponse实例
     */
    public static<T> R result(String code, String level, String message,T data){
        return new R<>().setCode(code).setLevel(level).setMessage(message).setData(data);
    }



}
